"""
贪婪模式: 是正则表达式的默认匹配模式, 在符合规则的前提下, 会尽可能多的匹配数据结果返回

?   要么符合正则规则, 返回一次结果
    要么不符合规则, 没有结果返回
    最多匹配只能匹配一次

*   匹配前一个字符零次或者多次 <前一个字符可以没有出现, 最小次数是0次>
+   匹配前一个字符一次或者多次 <前一个字符最少要出现一次, 才可以被匹配到, 次数多一并匹配>
?   零次或1次

.*?
.+?
"""

import re

txt = """
这是一段字符901233445455，
this a string
这是一段字符901233445455，
this a string
这是一段字符901233445455，
this a string
"""

# .* 贪婪模式
# 就返回一个结果，会从左边第一个满足条件的字符一直到右侧满足最后一个条件的中间部分
result = re.findall('这是一段字符(.*)string', txt, re.S)
print(len(result))
print(result)

# .*? 非贪婪模式
# 就返回多个结果，会从左边一个满足条件的字符一直到右侧满足条件的中间部分，尽可能多的满足正则表达式的数据
result = re.findall('这是一段字符(.*?)string', txt, re.S)
print(len(result))
print(result)
